/**
 * JEEYC.com Inc. Copyright (c) 2014-2015 All Rights Reserved.
 **/
package com.cw.lang.common.enums;

import java.util.Arrays;

import lombok.Getter;

/**
 * 公用错误类型
 *
 * @author jiaowl
 **/
@Getter
public enum EnumResponseType {
    /**
     * 执行成功
     */
    SUCCESS("JEEYC_SUCCESS", "执行成功"),
    /**
     * 流程错误
     **/
    FLOW_ERR("JEEYC_FLOW_ERR", "流程错误"),
    /**
     * 验证错误
     **/
    VALIDATE_ERR("JEEYC_VALIDATE_ERR", "验证错误"),
    /**
     * 系统错误
     **/
    SYS_ERR("JEEYC_SYS_ERR", "系统错误"),
    /**
     * 数据库异常
     */
    DB_ERR("JEEYC_DB_ERR", "数据库异常");

    /**
     * 状态码
     **/
    private final String code;
    /**
     * 状态描述
     **/
    private final String description;

    /**
     * 私有构造方法
     *
     * @param code 编码
     * @param description 描述
     **/
    EnumResponseType(String code, String description) {
        this.code = code;
        this.description = description;
    }

    /**
     * 根据编码查找枚举
     *
     * @param code 编码
     * @return {@link EnumResponseType} 实例
     **/
    public static EnumResponseType find(String code) {
        return Arrays.stream(EnumResponseType.values()).filter(input -> input.getCode().equals(code)).findFirst()
            .orElse(null);
    }
}
